PushNotifications - SOAP
OIPA can send messages constructed in PushNotifications business rule to downstream applications using SOAP protocol. When an 'Event' in PushNotifications is triggered, OIPA will look into the database for downstream application and security details. To receive messages from OIPA on the occurrence of an event and to communicate with OIPA using SOAP protocol, the downstream application needs to 'POST' its application and security details using REST API's.
Mandatory Details
"wsdlLocation": "http://localhost:XXXX/PASJava?wsdl",
"serviceName": "billing",
"portName": "{http://FileReceived}PasFileReceivedPort","securityType":"WSS |HTTP"
Optional Details
"invokeOneWay":"" Default value is false
"soapAction":"" Default value is Null.
Security Details:
"userName": "",
"password": ""
XML Schema
<PushNotifications>
<Templates>
<Template ID="[name]">
<Parameters>
<Parameter NAME="[name]">[field | variable]</Parameter>
<Parameter>...</Parameter>
</Parameters>
<JSTLMessage><[parameter name]>[parameter attribute name | literal]</[parameter name]><[parameter name]>...</[parameter name]>
</JSTLMessage>
</Template>
<Template>
...
</Template>
</Templates>
<PushNotification EVENTNAME="[name]">
<Message ID="">
<Tests>
<Test>[condition]</Test>
<Test>...</Test>
</Tests>
<AsEventMessage
xmlns="[name space]">
<JSTLTemplate>[id]</JSTLTemplate>
<JSTLTemplate>...</JSTLTemplate>
<JSTLMessage>
<Parameters>
<Parameter NAME="[name]" DATATYPE="[TEXT | INTEGER | DECIMAL | DATE | BOOLEAN | CURRENCY | BIGTEXT]" >[]</Parameter>
<Parameter>...</Parameter>
</Parameters><[parameter name]>[parameter attribute name | literal]</[parameter name]><[parameter name]>...</[parameter name]>
</JSTLMessage>
</AsEventMessage>
</Message>
<OnTransactionFailure>[failure message id]</OnTransactionFailure>
</PushNotification>
<OnTransactionFailure>
<Message ID="[failure message id]">
<AsEventMessage xmlns="[name space]">
<JSTLTemplate>[id]</JSTLTemplate>
<JSTLTemplate>...</JSTLTemplate>
<JSTLMessage>
<Parameters>
<Parameter NAME="[name]" DATATYPE="[TEXT | INTEGER | DECIMAL | DATE | BOOLEAN | CURRENCY | BIGTEXT]" >[]</Parameter>
<Parameter>...</Parameter>
</Parameters><[parameter name]>[parameter attribute name | literal]</[parameter name]><[parameter name]>...</[parameter name]>
</JSTLMessage>
</AsEventMessage>
</Message>
<Message>
...
</Message>
</OnTransactionFailure>
<OnPushFailure>
<RollbackTransaction>[Yes | No]</RollbackTransaction>
<CreateBusinessError>[Yes | No]</CreateBusinessError>
</OnPushFailure>
</PushNotifications>
XML Example
<PushNotifications>
<Templates>
<Template id='Header'>
<Parameters>
<!-- MessageGuid and MessageDateTime will be auto generated -->
<Parameter NAME= MsgGuid>Activity:MsgGUID</Parameter>
<Parameter NAME= EFFdate>Activity:Effectivedate</Parameter>
<Parameter NAME= ActGuid>Activity:ActivityGuid</Parameter>
<Parameter NAME= Datetime>Activity:ActivityDateTime</Parameter>
<Parameter NAME= Reverse>Activity:Reverse</Parameter>
</Parameters>
<JSTLMessage>
<MsgGuid>[MsgGuid]</MsgGuid>
<EffectiveDate>[EFFdate]</EffectiveDate>
<ActivityDateTime>[Datetime]<ActivityDateTime>
<ActivityGuid>[ActGuid] </ActivityGuid>
<Reverse>[Reverse]</Reverse>
</JSTLMessage>
</Template>
</Templates>
<PushNotification EventName='Billing'>
<Tests>
<Test CONDITION=ListBill='True'> </Test>
</Tests>
<Template> Header</Template>
<Message ID='BillingMsg1'>
<Parameters>
<Parameter NAME= MsgGuid>Activity:MsgGuid </Parameter>
<Parameter NAME= TransactionName>TransactionName </Parameter>
<Parameter NAME= Segment>Segment</Parameter>
<Parameter NAME= TransactionCount>TransactionCount </Parameter>
<Parameter NAME= Event>Activity:Event</Parameter>
</Parameters>
<JSTLMessage>
<Event>[Event]</Event>
<MSGGUId>[MsgGuid]</MSGGUId>
<!-- A transaction Map with Segment Object Array -->
<forEach items="[transactionMap]" var="eachTransaction">
<Transaction name="[eachTransaction.key]">
<forEach items="[ eachTransaction.value]" var="eachSegment">
<Segment name="[eachSegment.name]">
<BillingTotal>[eachSegment.total]</BillingTotal>
</Segment>
</Transaction>
</forEach>
</JSTLMessage>
</Message>
</Test>
</Tests>
</PushNotification>
<OnTransactionFailure>
<Message>
<Parameters>
<Parameter NAME= MsgGuid>Activity:MsgGUID</Parameter>
<Parameter NAME= EFFdate>Activity:ActivityEffectivedate</Parameter>
<Parameter NAME= PaidToDate>Activity:PaidToDate</Parameter>
<Parameter NAME= Fee>Activity:PolicyFee</Parameter>
</Parameters>
<JSTLMessage>
<MsgGuid>[MsgGuid]</MsgGuid>
<EffectiveDate>[EFFdate]</EffectiveDate>
<ActivityDateTime>[Datetime]<ActivityDateTime>
<DueDate>[PaidToDate] </DueDate>
<PolicyFee>[Fee]</PolicyFee>
</JSTLMessage>
</Message>
</OnTransactionFailure>
<OnPushFailure>
<RollbackTransaction>Yes</RollbackTransaction>
<CreateBusinessError>Yes</CreateBusinessError>
</OnPushFailure>
</PushNotifications>
Output Example
<MsgGuid> 9B5AA155-4F7B-46AC-9A92-A253BE14C6B7</MsgGuid>
<EffectiveDate> 2016-11-01</EffectiveDate>
<ActivityDateTime>2018-07-18T09:32:12.643-05:00 <ActivityDateTime>
<ActivityGuid> AB4016A2-573D-4918-A94D-1F786725B717 </ActivityGuid>
<Event>Billing</Event>
<MsgId>BillingMsg1</MsgId>
<Transaction name="Transaction2">
<Segment name="Segment21">
<BillingTotal>111</BillingTotal>
</Segment>
<Segment name="Segment22">
<BillingTotal>222</BillingTotal>
</Segment>
</Transaction>
<Transaction name="Transaction1">
<Segment name="Segment11">
<BillingTotal>100</BillingTotal>
</Segment>
<Segment name="Segment12">
<BillingTotal>200</BillingTotal>
</Segment>
</Transaction>
Output - OnTransactionFailure
<MsgGuid> 9B5AA155-4F7B-46AC-9A92-A253BE14C6B7</MsgGuid>
<EffectiveDate> 2016-11-01</EffectiveDate>
<ActivityDateTime>2018-07-18T09:32:12.643-05:00 <ActivityDateTime>
<ActivityGuid> AB4016A2-573D-4918-A94D-1F786725B717 </ActivityGuid>
<ActivityStatus>Pending</ActivityStatus>
Example of a JSTL Template
<Message>
<Parameters>
<Parameter name=Eventname>Activity: Event </Parameter>
<Parameter name=MsgGuid > Activity:MSgguid </Parameter>
<Parameter name=EffectiveDate> Activity:EffDate </Parameter>
<Parameter name=PolicyNumber> Activity:PolNumber </Parameter>
<Parameter name=PaidToDate> Activity:PaidToDate </Parameter>
<Parameter name=ModalPremium> Activity:ModalPremium </Parameter>
<Parameter name=EFTModalPremium> Activity: EFTModalPremium </Parameter>
<Parameter name=AnnualDiscount> Activity: AnnualDiscount </Parameter>
</Parameters>
<JSTLMessage>
<Event EVENTNAME=[EventName]></Event>
<MsgGUID>[MesgGuid] </MsgGUID>
<EffectiveDate> [EffectiveDate]</EffectiveDate>
<PolicyNumber>[PolicyNumber]</PolicyNumber
<PaidToDate>[PaidToDate]</PaidToDate>
<Premium>
<ModalPremium>[ModalPremium]</ModalPremium>
<EFTModalPremium>[EFTModalPremium]</EFTModalPremium>
<AnnualDiscount>[AnnualDiscount]</AnnualDiscount>
</Premium>
</JSTLMessage>
</Message>
Output
<Message>
<Event EVENTNAME="Billing">
<MsgGUID> 9B5AA155-4F7B-46AC-9A92-A253BE14C6B7</MsgGUID>
<EffectiveDate> 2016-11-01</EffectiveDate>
<PolicyNumber>A000075449 </PolicyNumber>
<PaidToDate>2017-11-01 </PaidToDate>
<Premium>
<ModalPremium>380 </ModalPremium>
<EFTModalPremium>400 </EFTModalPremium>
<AnnualDiscount> 20 </AnnualDiscount>
</Premium>
</Event>
</Message>